bitkeeper revision 1.1205.1.9 (42179612_ThKiOQJXSvUd2fzY_5Zjg)
authormaf46@burn.cl.cam.ac.uk <maf46@burn.cl.cam.ac.uk>
Sat, 19 Feb 2005 19:40:02 +0000 (19:40 +0000)
committermaf46@burn.cl.cam.ac.uk <maf46@burn.cl.cam.ac.uk>
Sat, 19 Feb 2005 19:40:02 +0000 (19:40 +0000)
Minor shadow code cleanups/renames.

xen/arch/x86/shadow.c
xen/include/asm-x86/shadow.h

index be49e96f41d7c1f3bf1cb3a792db9d6b64d66b97..659041679308fb89ccadf1621eb498b6cbbb8639 100644 (file)
@@ -465,15 +465,15 @@ void vmx_shadow_clear_state(struct domain *d)
 
 
 unsigned long shadow_l2_table( 
-    struct domain *d, unsigned long gpfn)
+    struct domain *d, unsigned long gmfn)
 {
     struct pfn_info *spfn_info;
     unsigned long    spfn;
-    unsigned long guest_gpfn;
+    unsigned long    gpfn;
 
-    guest_gpfn = __mfn_to_gpfn(d, gpfn);
+    gpfn = __mfn_to_gpfn(d, gmfn);
 
-    SH_VVLOG("shadow_l2_table( %p )", gpfn);
+    SH_VVLOG("shadow_l2_table( %p )", gmfn);
 
     perfc_incrc(shadow_l2_table_count);
 
@@ -485,14 +485,14 @@ unsigned long shadow_l2_table(
 
     spfn = spfn_info - frame_table;
   /* Mark pfn as being shadowed; update field to point at shadow. */
-    set_shadow_status(d, guest_gpfn, spfn | PSH_shadowed);
+    set_shadow_status(d, gpfn, spfn | PSH_shadowed);
  
 #ifdef __i386__
     /* Install hypervisor and 2x linear p.t. mapings. */
     if ( shadow_mode_translate(d) )
     {
 #ifdef CONFIG_VMX
-        vmx_update_shadow_state(d->exec_domain[0], gpfn, spfn);
+        vmx_update_shadow_state(d->exec_domain[0], gmfn, spfn);
 #else
         panic("Shadow Full 32 not yet implemented without VMX\n");
 #endif
@@ -514,19 +514,19 @@ unsigned long shadow_l2_table(
                &idle_pg_table[DOMAIN_ENTRIES_PER_L2_PAGETABLE],
                HYPERVISOR_ENTRIES_PER_L2_PAGETABLE * sizeof(l2_pgentry_t));
         spl2e[LINEAR_PT_VIRT_START >> L2_PAGETABLE_SHIFT] =
-            mk_l2_pgentry((gpfn << PAGE_SHIFT) | __PAGE_HYPERVISOR);
+            mk_l2_pgentry((gmfn << PAGE_SHIFT) | __PAGE_HYPERVISOR);
         spl2e[SH_LINEAR_PT_VIRT_START >> L2_PAGETABLE_SHIFT] =
             mk_l2_pgentry((spfn << PAGE_SHIFT) | __PAGE_HYPERVISOR);
         spl2e[PERDOMAIN_VIRT_START >> L2_PAGETABLE_SHIFT] =
             mk_l2_pgentry(__pa(page_get_owner(
-                &frame_table[gpfn])->arch.mm_perdomain_pt) |
+                &frame_table[gmfn])->arch.mm_perdomain_pt) |
                           __PAGE_HYPERVISOR);
 
         unmap_domain_mem(spl2e);
     }
 #endif
 
-    SH_VLOG("shadow_l2_table( %p -> %p)", gpfn, spfn);
+    SH_VLOG("shadow_l2_table( %p -> %p)", gmfn, spfn);
     return spfn;
 }
 
index 8bfe38d530f3d83a20c73612553d5ea2e5fe7d3d..25b0287b7be8087083778936fd5024b36f595fc6 100644 (file)
@@ -70,7 +70,7 @@ static inline void shadow_mode_disable(struct domain *d)
 }
 
 extern unsigned long shadow_l2_table( 
-    struct domain *d, unsigned long gpfn);
+    struct domain *d, unsigned long gmfn);
   
 static inline void shadow_invalidate(struct exec_domain *ed) {
     if ( !shadow_mode_translate(ed->domain))
@@ -657,7 +657,7 @@ static inline void set_shadow_status(
 #ifdef CONFIG_VMX
 
 static inline void vmx_update_shadow_state(
-    struct exec_domain *ed, unsigned long gpfn, unsigned long smfn)
+    struct exec_domain *ed, unsigned long gmfn, unsigned long smfn)
 {
 
     l2_pgentry_t *mpl2e = 0;
@@ -681,7 +681,7 @@ static inline void vmx_update_shadow_state(
     __flush_tlb_one(SH_LINEAR_PT_VIRT_START);
 
     spl2e = (l2_pgentry_t *)map_domain_mem(smfn << PAGE_SHIFT);
-    gpl2e = (l2_pgentry_t *)map_domain_mem(gpfn << PAGE_SHIFT);
+    gpl2e = (l2_pgentry_t *)map_domain_mem(gmfn << PAGE_SHIFT);
     memset(spl2e, 0, L2_PAGETABLE_ENTRIES * sizeof(l2_pgentry_t));
 
     ed->arch.shadow_vtable = spl2e;
@@ -729,16 +729,19 @@ static inline unsigned long gva_to_gpa(unsigned long gva)
 static inline void __update_pagetables(struct exec_domain *ed)
 {
     struct domain *d = ed->domain;
-    unsigned long gpfn = pagetable_val(ed->arch.guest_table) >> PAGE_SHIFT;
-    unsigned long smfn = __shadow_status(d, gpfn) & PSH_pfn_mask;
+    unsigned long gmfn = pagetable_val(ed->arch.guest_table) >> PAGE_SHIFT;
 
-    SH_VVLOG("0: __update_pagetables(gpfn=%p, smfn=%p)", gpfn, smfn);
+    // mafetter: BUG: __shadow_status() should take a gpfn, not a gmfn...
+    // WHY DOES THIS WORK?
+    unsigned long smfn = __shadow_status(d, gmfn) & PSH_pfn_mask;
+
+    SH_VVLOG("0: __update_pagetables(gmfn=%p, smfn=%p)", gmfn, smfn);
 
     if ( unlikely(smfn == 0) )
-        smfn = shadow_l2_table(d, gpfn);
+        smfn = shadow_l2_table(d, gmfn);
 #ifdef CONFIG_VMX
     else if ( shadow_mode_translate(ed->domain) )
-        vmx_update_shadow_state(ed, gpfn, smfn);
+        vmx_update_shadow_state(ed, gmfn, smfn);
 #endif
 
     ed->arch.shadow_table = mk_pagetable(smfn<<PAGE_SHIFT);